﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Zocono.WCS.Domain.EntityInfo;
using Zocono.WCS.Infrastructure.ApllicationDto.DtoWcsManage;

namespace Zocono.WCS.Domain.UserManageDomain
{
    public interface IMenuInfoService : IDomainService
    {
        /// <summary>
        /// 添加菜单
        /// </summary>
        /// <param name="menuInfoDto"></param>
        /// <returns></returns>
        Task<bool> AddMenuAsync(MenuInfoDto menuInfoDto);

        Task<bool> UpdateMenuInfoAsync(MenuInfoDto menuInfoDto);
        Task<MenuInfoDto> GetMenuByIDAsync(long menuID);

        /// <summary>
        /// 获取权限菜单
        /// </summary>
        /// <param name="menuID"></param>
        /// <returns></returns>
        //Task<List<MenuInfoDto>> GetMenuIDAsync(List<long> userID);

        /// <summary>
        /// 获取用户菜单权限
        /// </summary>
        /// <param name="menuID"></param>
        /// <returns></returns>
        Task<List<MenuInfoDto>> GetMenuAsync();


        /// <summary>
        /// 删除菜单
        /// </summary>
        /// <param name="func"></param>
        /// <returns></returns>
        Task<bool> DeleteMenuAsync(Expression<Func<MenuInfo,bool>> func);
    }
}
